/*
  学习目标：useState 实现类型提示
*/

// const [state, setstate] = useState()

// 实现useState的泛型函数
// 1. 要求count的类型，根据初始值的类型得来
// 2. 要求setCount是一个函数，函数的参数类型，有初始值类型决定
// 3. 最多只能解构两个元素


type UseStateType = <T>(initValue: T) => [T, (aa: T) => void]

const useState:UseStateType = (initValue) => {
  const setValue = (params) => {
    // ...省略实现
  };
  return [initValue, setValue];
}

const [count, setCount] = useState(0);

setCount(1);

const [msg, setMsg] = useState('')
setMsg('1')

const [isShow, setIsShow] = useState(false)